# -*- coding: utf-8 -*-
"""
Created on Wed Aug 16 21:30:32 2023

@author: skunk69
"""

import json

chinese_name = u'Piers-Harris儿童自我意识量表'
english_name = 'the Piers-Harris Children‘s Self-concept Scale'
abbreviation = 'PHCSS'
category = u'自我意识与自尊量表'

outline = u"""儿童自我意识反映了儿童对自己在环境和社会中所处的地位的认识，也反映了评价自身的价值观念，是个体实现社会化目标、完善人格特征的重要保证。自我意识包括自我观察、自我监督、自我评价、自我体验、自我教育和自我控制等方面，它对人的心理活动和行为起着调节作用。儿童从婴儿期起自我意识就开始萌芽，至青春期渐趋成熟。如果在发育过程中受内外因素的影响，使儿童的自我意识出现不良倾向，则会对儿童的行为、学习和社会能力造成不良影响，使儿童的人格发生偏异。
《Piers-Harris儿童自我意识量表》(Children‘s Self-concept Scale, PHCSS)是美国心理学家DBEV及Piers Harris于1969年编制、1974年修订的儿童自评量表。主要用于评价儿童自我意识的状况，分为六个分量表：行为、智力与学校情况、躯体外貌与属性、焦虑、合群、幸福与满足来评价儿童的自我意识。该量表在国外应用较为广泛，信度与效度较好。据心理测量年鉴第九版（MMY-9）统计1978-1986年收录的引用文献最多的50个测验中，该量表排在第33位。"""

instruction = u"""下面有80个问题，是了解你是怎样看待你自己的。请你决定哪些问题符合你的实际情况，哪些问题不符合你的实际情况。如果你认为某一个问题符合或基本符合你的实际情况，就在相应的题号后选择“是”，如果不符合或基本不符合你的实际情况，就在相应的题号后选择“否”。对于每一个问题你只能作一种回答，并且每个问题都应该回答。
注：末尾有*者答“否”为标准答案，其余则答“是”为标准答案。"""

with open('PHCSS.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for line in lines:
    key,value = line.strip().split('.',maxsplit=1)
    items[key] = value.strip()

reverse_items = []
scales = [u'行为',u'智力与学校情况',u'躯体外貌属性',u'焦虑',u'合群',u'幸福与满足']
scales_items = [
    [12,13,14,21,22,25,34,35,38,45,48,56,59,62,78,80],# 行为
    [5,7,9,12,16,17,21,26,27,30,31,33,42,49,53,66,70],# 智力与学校情况
    [5,8,15,29,33,41,49,54,57,60,63,69,73],# 躯体外貌属性
    [4,6,7,8,10,20,28,37,39,40,43,50,74,79],# 焦虑
    [1,3,6,11,40,46,49,51,58,65,69,77],# 合群
    [2,8,36,39,43,50,52,60,67,80],# 幸福与满足
    ]

# check scales_items
print(f'scale length={[len(l) for l in scales_items]}')

check = []
for l in scales_items:
    check = check+l
print(f'len(check)={len(check)}')

# complementary set
check_set = {i for i in sorted(check)}^{i for i in range(1,81)}
print(f'complementary set= {check_set}')

factors = []
factors_scales = []
rating = [u'是',u'否']
score_rules = {}
for key,value in items.items():
    if value[-1] == '*':
        score_rules[key] = u'否'
    else:
        score_rules[key] = u'是'

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《Piers-Harris儿童自我意识量表》属于自评量表。本量表适用于8-16岁儿童。可用于临床对行为障碍、情绪障碍儿童自我意识的评价、治疗追踪，也可作为筛查工具用于流行学调查。"""

reliability = u"""1990年在湖南省城乡取样864例，将此量表进行标准化。重测信度间隔2周为0.81，间隔三个月为0.74；Cronbach的α系数为0.61（合群），-0.75（行为），各因子内部一致性较好；大部分项目与分量表分的一致性较好，仅少数项目与总分的一致性较差，例如：我在“音乐方面不错”、“我是一个幻想家”、“我喜欢按自己的方式做事”等，可能与文化背景及社会赞许性有关。"""
validity = u"""本量表与Achenbach儿童行为量表、Achenbach教师报告表、智商、学习成绩均有较好的相关，临床应用对行为障碍、情绪障碍、单纯性肥胖、躯体疾病儿童有鉴别作用。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""每一项均规定了答“是”或“否”的标准答案，凡规定答“是”，受试者在“是”上划了圈便记1分，如划了“否”则不记分；同理，如规定答“否”，受试者在“否”上划了圈便记1分，如划了“是”则不记分。主试者根据记分键计分。本量表为正性记分，凡得分高者表明该分量表评价好，即无此类问题，如：“行为”得分高，表明该儿童行为较适当，“焦虑”得分高，表明该儿童情绪好，不焦虑，总分得分高则表明该儿童自我意识水平高。
划界分：按原量表规定，总分得分在第30百分位~第70百分位之间为正常范围；得分低于第30百分位（相当于粗分46)为自我意识水平偏低，提示该儿童可能存在某些情绪或行为问题或社会适应不良，有自信心不足、自我贬低或自暴自弃倾向；得分高于第70百分位（相当于粗分58）为自我意识水平过高，提示该儿童可能对自己要求过高，过于求全或存在焦虑情绪，对挫折的耐受能力不足（具体尚需结合临床来综合评价）。某一分量表得分低，表明存在这方面问题，例如：“行为”得分低，提示该儿童认为自己的行为不得当，智力与学校情况得分低，提示该儿童有学习方面的困难，“焦虑”得分低，提示该儿童有情绪问题。也可用常模的均数加减2个标准差作为划界分。"""

applications = u"""苏林雁等于1994年在湖南省取样制订了湖南省常模，在收集应用经验的基础上，与全国20个单位协作，于2002年制订了全国城市儿童常模。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)